<?xml version="1.0"?>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-sysv-generator" conditional="HAVE_SYSV_COMPAT">

  <refentryinfo>
    <title>systemd-sysv-generator</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>systemd-sysv-generator</refentrytitle>
    <manvolnum>8</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>systemd-sysv-generator</refname>
    <refpurpose>Unit generator for SysV init scripts</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <para><filename>/usr/lib/systemd/system-generators/systemd-sysv-generator</filename></para>
  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>

    <para><filename>systemd-sysv-generator</filename> is a generator
    that creates wrapper .service units for
    <ulink url="https://savannah.nongnu.org/projects/sysvinit">SysV init</ulink>
    scripts in <filename>/etc/init.d/*</filename> at boot and when
    configuration of the system manager is reloaded. This will allow
    <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
    to support them similarly to native units.</para>

    <para><ulink url="http://refspecs.linuxbase.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generic/iniscrptact.html">LSB headers</ulink>
    in SysV init scripts are interpreted, and the ordering specified
    in the header is turned into dependencies between the generated
    unit and other units. The LSB facilities
    <literal>$remote_fs</literal>, <literal>$network</literal>,
    <literal>$named</literal>, <literal>$portmap</literal>,
    <literal>$time</literal> are supported and will be turned into
    dependencies on specific native systemd targets.  See
    <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>
    for more details.</para>

    <para>SysV runlevels have corresponding systemd targets
    (<filename>runlevel<replaceable>X</replaceable>.target</filename>).
    The wrapper unit that is generated will be wanted by those targets
    which correspond to runlevels for which the script is
    enabled.</para>

    <para><command>systemd</command> does not support SysV scripts as
    part of early boot, so all wrapper units are ordered after
    <filename>basic.target</filename>.</para>

    <para><filename>systemd-sysv-generator</filename> implements
    <citerefentry><refentrytitle>systemd.generator</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para>
      <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>
    </para>
  </refsect1>

</refentry>
